package com.yidu.action;


import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.yidu.common.JsonMsg;
import com.yidu.common.Pages;
import com.yidu.domain.ListenRole;
import com.yidu.service.ListenModuleManageService;
import com.yidu.service.ListenModuleRoleService;
import com.yidu.service.ListenRoleService;

/**
 * 
 * 类注释:角色前端控制器
 * @author wpy
 * 2018年11月27日上午11:44:05
 */
@Controller
@RequestMapping("/listenRole")
public class ListenRoleController {
	
	@Resource
	private ListenRoleService roleService;
	
	@Resource
	private ListenModuleRoleService moduleRoleService;
	
	@Resource
	private ListenModuleManageService moduleManageService;
	
	/**
	 * 查询角色数据
	 * @param roleName 角色名称
	 * @param page 当前页数
	 * @param limit 当前行数
	 * @return
	 */
	@RequestMapping("selectRole")
	@ResponseBody
	public Map<String,Object> selectRole(@RequestParam(value = "key[roleName]", required =false)String roleName,@RequestParam(value = "page" , required =false)Integer page,@RequestParam(value = "limit" , required =false)Integer limit){
		//创建角色对象
		ListenRole role=new ListenRole();
		//判断角色名称是否为空
		if(roleName!=null && !"".equals(roleName)) {
			//赋值
			role.setRoleName(roleName);
		}
		//创建分页对象
		Pages pages = new Pages();
		//判断页数和行数都不为空时
		if(page!=null && limit!=null) {
			//赋值
			pages.setCurPage(page);
			pages.setMaxResult(limit);
		}
		
		//创建map对象
		Map<String, Object> map = new HashMap<String, Object>();
		//角色名称
		map.put("roleName", role.getRoleName());
		//页数
		map.put("firstRows", pages.getFirstRows());
		//行数
		map.put("maxResult", pages.getMaxResult());
		//得到相应的角色数据
		List<ListenRole> list = roleService.selectRole(map);
		
		//得到总行数
		int rows= roleService.selectCount(map);
		
		//创建map对象
		Map<String,Object> layuiMap =new HashMap<String, Object>();
		layuiMap.put("code", 0);
		layuiMap.put("msg", "");
		layuiMap.put("count",rows);
		layuiMap.put("data", list);
		return layuiMap;
	}
	
	/**
	 * 根据角色id删除(修改是否有效)角色数据
	 * @param roleId 角色id
	 * @return
	 */
	@RequestMapping("deleteRole")
	@ResponseBody
	public JsonMsg deleteRole(String roleId) {
		//创建工具提示类
		JsonMsg msg = new JsonMsg();
		//创建角色对象
		ListenRole role = new ListenRole();
		//判断参数不为空
		if(roleId!=null && !"".equals(roleId)) {
			//赋值给对象
			role.setRoleId(roleId);
		}
		//将是否有效改为无效
		role.setIsva(0);
		
		//根据对象修改
		int rows = roleService.updateByPrimaryKeySelective(role);
		if(rows>-1) {
			msg.setDatas(1);
			//修改为无效成功
			msg.setMsg("删除角色成功!");
		}else {
			msg.setDatas(2);
			//修改为无效失败
			msg.setMsg("删除角色失败!");
		}
		return msg;
	}
	
	/**
	 * 根据角色id查询角色数据
	 * @param roleId 角色id
	 * @return
	 */
	@RequestMapping("findById")
	@ResponseBody
	public ListenRole findById(String roleId){
		//定义角色对象
		ListenRole role = null;
		//判断参数不为空
		if(roleId!=null && !"".equals(roleId)) {
			//根据id查询赋值给角色对象
			role = roleService.selectByPrimaryKey(roleId);
		}
		return role;
	}
	/**
	 * 查询所有的用户
	 * @return list
	 * @author LiuXiang
	 * @date 2018年12月4日 下午3:47:16
	 */
	@RequestMapping("/queryAll")
	@ResponseBody
	public List<ListenRole> queryAll(){
		return roleService.querAll();
	}
	
}

